﻿using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.IO;

using Ras2ClassLib;
using System.Collections.Generic;

public partial class ViewArtist : System.Web.UI.Page
{
    /// ID þess flytjanda sem beðið er um
    private int ArtistID;

    protected void Page_Load(object sender, EventArgs e)
    {
        // Sækja ID úr querystring
        int performerID = GetPerformerID();

        Ras2DBDataContext db = new Ras2DBDataContext();

        // Sækja almennar upplýsingar um flytjanda
        LoadInfo(db);
        
        // Sækjum upplýsingar um öll lög flytjanda
        SongController ctrl = new SongController();
        m_gridSongsWithPerformer.DataSource = ctrl.GetAllSongsWithPerformer(performerID);
        m_gridSongsWithPerformer.DataBind();
    }

    /// <summary>
    /// Sækir og skilar ID úr QueryString. Ef finnst ekki þá redirect-ar fallið á forsíðuna
    /// </summary>
    private int GetPerformerID()
    {
        string id = Request.Params["id"] as string;
        if (!String.IsNullOrEmpty(id))
            this.ArtistID = int.Parse(id);
        else
            Response.Redirect("~/Default.aspx", true);

        // Viljum láta fallið skila int til að hægt sé að vinna
        // á einfaldan hátt með ID.
        return int.Parse(id);
    }

    /// <summary>
    /// Sækir performer og fyllir inn í control-in í view-inu
    /// </summary>
    /// <param name="db"></param>
    private void LoadInfo(Ras2DBDataContext db)
    {
        // Sækja performer út frá ID
        var artist = db.Performers.Single(a => a.ID == this.ArtistID);

        // Ef artist finnst þá fyllum við inn í control-in
        if (artist != null)
        {
            // Setja titil á síðu
            Page.Title += " &rsaquo; " + artist.Name;

            // Sækjum mynd
            // Myndir þurfa að geymast í ~/images möppu í rót, annars þarf að breyta hér!
            if (artist.Image != null)
            {
                imgArtistImage.ImageUrl = "~/images/";
                imgArtistImage.ImageUrl += artist.Image;
            }

            // Ef myndin er ekki til skal sækja default mynd.
            else
            {
                // Og breyta hér ef myndir eru vistaðar annars staðar!
                imgArtistImage.ImageUrl = "~/images/missing.jpg";
            }

            // Nafn og lýsing
            litArtistName.Text = artist.Name;
            litArtistDesc.Text = !String.IsNullOrEmpty(artist.Description) ? artist.Description.Replace("\r\n", "<br />") : "Engin lýsing skráð..";

            // Vefslóð
            if (!String.IsNullOrEmpty(artist.Url))
            {
                litArtistUrl.Text = !String.IsNullOrEmpty(artist.Url) ? artist.Url.Replace("\r\n", "<br />") : "Engin vefslóð skráð..";

                // Þurfum að bæta http:// framan við vefslóðir ef vantar.
                String artistUrl = artist.Url.Substring(0, 4);
                artistUrl.ToLower();

                if (artistUrl == "http")
                {
                    litWwwUrl.NavigateUrl = artist.Url;
                }
                else
                {
                    litWwwUrl.NavigateUrl = "http://";
                    litWwwUrl.NavigateUrl += artist.Url;
                }
            }
            else
                litArtistUrl.Text = "Engin vefslóð skráð..";

            litWikipediaUrl.NavigateUrl = "http://en.wikipedia.org/w/index.php?title=Special:Search&search=";
            litWikipediaUrl.NavigateUrl += artist.Name;
            litWikipediaUrl.NavigateUrl += "&go=Go";

        }
    }
}
